POV-Ray : Newsgroups : povray.general : assumed_gamma : Re: assumed_gamma Server Time
4 Aug 2024 16:10:08 EDT (-0400)
  Re: assumed_gamma  
From: Ive
Date: 5 Jun 2003 14:28:59
Message: <3edf8beb@news.povray.org>
Just to make it clear, I was talkin' all the time about the display_gamma
setting that should be in the povray ini-file. The assumed gamma in the
global settings statement of your scene file should be 1.0 as noted in the
docs to make sure PoV does lighting (and also radiosity) calculation within
a linear color space (thats the way it is in the "real world").


> Howerver, if you look at <povray>\scenes\incdemo\woods\woods2.pov, they set
> the "assumed_gamma" to 2.2.  If you use assumed_gamma 1.0 for any of the
> T_Wood textures, they are way too bright, and many look purplish.  For that
> reason, I generally don't use any of them, and create my own wood textures
> instead.

Yes, because they are quite *old*. I guess some of them go back to the time of
DKBtrace the predecessor of PoV-Ray.


> So...  I guess that brings me back to my original question.
>

I have done it this way:

global_settings {
  assumed_gamma 1.0
}

#declare OldGamma = 2.2;  // to compensate for old non-linear color definitions


// some helper macros for conversion

#macro RGB(C)
  rgb <pow(C.red, OldGamma), pow(C.green, OldGamma), pow(C.blue, OldGamma)>
#end

#macro RGBF(C)
  rgbf <pow(C.red, OldGamma), pow(C.green, OldGamma), pow(C.blue, OldGamma),
RGB.filter>
#end

#macro RGBT(C)
  rgbt <pow(C.red, OldGamma), pow(C.green, OldGamma), pow(C.blue, OldGamma),
RGB.transmit>
#end


and then use search'n'replace to change e.g. the color statements from woodmaps.inc
like this
this:

#declare M_Wood1A =
color_map {
    [0.0, 0.1 color RGB(<0.88, 0.60, 0.40>)
              color RGB(<0.88, 0.60, 0.40>)]
    [0.1, 0.9 color RGB(<0.88, 0.60, 0.40>)
              color RGB(<0.60, 0.30, 0.20>)]
    [0.9, 1.0 color RGB(<0.60, 0.30, 0.20>)
              color RGB(<0.60, 0.30, 0.20>)]
}

this is done within a few seconds and you they still work for old scenes in the old
way by setting

global_settings {
  assumed_gamma 2.0   // or whatever
}

#declare OldGamma = 1;

You can even use these macros if you are so used to think in colors in the non-linear
way but want to
put assumed_gamma 1.0 into global_setting for some reason.


hope this helps
-Ive


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.